/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package poker;

import java.io.Serializable;
import prop.Accion;

/**
 *
 * @author pol
 */
public class JugadorMaquinaPoker extends JugadorPoker implements Serializable {
    private EstrategiaPoker est;
    private Partida part;

    public void setPartida(Partida p) {
        part = p;
    }

    public Partida getPartida() {
        return part;
    }

    public EstrategiaPoker getEstrategia() {
        return est;
    }

    public void setEstrategia(EstrategiaPoker est) {
        this.est = est;
    }

    public void pedirApuesta() {
        Accion ac = est.apostar();
        MesaPoker m = (MesaPoker) mesa;
        if (ac.getNombre().equalsIgnoreCase("subir")) {
            apuesta = m.getApuesta();
            int apuestaFinal = apuesta + est.getInt(ac.getParametro(0));
            apuesta = apuestaFinal;
            //System.err.println(part.getJugadores().indexOf(this));
            part.setUltimoSubido(part.getJugadores().indexOf(this));
        }
        else if (ac.getNombre().equalsIgnoreCase("igualar")) {
            apuesta = m.getApuesta();
        }
        else if (ac.getNombre().equalsIgnoreCase("pasar")) {
            mano.setEstado(Mano.Estado.RETIRADO);
            for(int i = 0; i < mano.getNumCartas(); i++) {
                mesa.getBaraja().anadirCarta(mano.quitarCarta(i));
            }
        }
        else System.err.println("Accion no reconocida: " + ac.getNombre());

    }

    public void pedirDescarte() {
        Accion ac = est.descartar();
        if (ac.getNombre().equalsIgnoreCase("descartar")) {
            int n = ac.consultaNumParametros();
            for (int i = 0; i < n; i++) {
                int elim = est.getInt(ac.getParametro(i));
                if (elim > 0) {
                    //System.err.println("descarta");
                    descartado++;
                    mesa.getBaraja().anadirCarta(mano.quitarCarta(i));
                    mano.anadirCarta(mesa.getBaraja().sacarCarta());
                }
            }
        }
        else System.err.println("Accion no reconocida: " + ac.getNombre());
    }
}
